﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ALMForCRMToolkit.Models
{
    public sealed class EnumTypes
    {
        #region LockRule
        public class LockRuleMode
        {
            public static readonly AppEnum Exclusive = new AppEnum(0, "Exclusive");
            public static readonly AppEnum Shared = new AppEnum(1, "Shared");
        }

        public class LockRuleWorkItemMode
        {
            public static readonly AppEnum OneToOne = new AppEnum(0, "OneToOne");
            public static readonly AppEnum OneToMany = new AppEnum(1, "OneToMany");
        }

        public class LockRuleStatus
        {
            public static readonly AppEnum Draft = new AppEnum(0, "Draft");
            public static readonly AppEnum Published = new AppEnum(1, "Published");
        }

        #endregion


        #region WorkItem

        public class WorkItemStatus
        {
            public static readonly AppEnum Pending = new AppEnum(1, "Pending");
            public static readonly AppEnum InProgress = new AppEnum(2, "In Progress");
            public static readonly AppEnum OnHold = new AppEnum(3, "On Hold");
            public static readonly AppEnum Deferred = new AppEnum(4, "Deferred");
            public static readonly AppEnum Completed = new AppEnum(5, "Completed");
        }
        #endregion

        #region LockIntent
        public class LockIntentStatus
        {
            public static readonly AppEnum Open = new AppEnum(0, "Open");
            public static readonly AppEnum Closed = new AppEnum(1, "Closed");
        }

        public class LockIntentItem
        {
            public static readonly AppEnum Solution = new AppEnum(0, "Solution");
            public static readonly AppEnum EntitySchema = new AppEnum(1, "Entity Schema");
            public static readonly AppEnum EntityForm = new AppEnum(2, "Entity Form");
            public static readonly AppEnum EntityView = new AppEnum(3, "Entity View");
            public static readonly AppEnum BusinessProcess = new AppEnum(4, "Business Process");
            public static readonly AppEnum Role = new AppEnum(5, "Role");
            public static readonly AppEnum Dashboard = new AppEnum(6, "Dashboard");
            public static readonly AppEnum Plugins = new AppEnum(7, "Plugins");
        }
        #endregion

        #region LogItem
        public class LogItemType
        {
            public static readonly AppEnum Controlled = new AppEnum(0, "Controlled");
            public static readonly AppEnum UnControlled = new AppEnum(1, "Uncontrolled");
        }

        public class LogItemStatus
        {
            public static readonly AppEnum Commited = new AppEnum(0, "Commited");
            public static readonly AppEnum Discarded = new AppEnum(1, "Discarded");
            public static readonly AppEnum Synced = new AppEnum(2, "Synced");
        }
        #endregion

        #region Build
        public class BuildStaus
        {
            public static readonly AppEnum New = new AppEnum(0, "New");
            public static readonly AppEnum ReadyForTest = new AppEnum(1, "ReadyForTest");
            public static readonly AppEnum Rejected = new AppEnum(2, "Rejected");
            public static readonly AppEnum ReleaseCandidate = new AppEnum(3, "ReleaseCandidate");
        }
        
        #endregion

    }
}
